﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DataTransferObject;
namespace _5ChickDeal.Admin.Control
{
    public partial class AddDeal : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["error"] == "true")
            {
                Message(false, "Lỗi! Không xóa được");

            }
            if (Request.QueryString["error"] == "false")
            {
                Message(true, "Xóa thành công");
            }
            if (!IsPostBack)
            {
                DropDownListBind();
                RepeaterBind();
            }
        }


        private void RepeaterBind()
        {
            DataClassesDataContext db = new DataClassesDataContext();
            try
            {
                var source = from deal in db.Deals
                             where TextBoxTimKiem.Text==""?true:(deal.ten.Contains(TextBoxTimKiem.Text)||
                             deal.chitiet.Contains(TextBoxTimKiem.Text)||deal.diemnoibat.Contains(TextBoxTimKiem.Text)
                             ||deal.dieukiensudung.Contains(TextBoxTimKiem.Text))
                             select new
                             {
                                 id = deal.id,
                                 ten = deal.ten,
                                 congty = deal.CongTy1.ten,
                                 hinh = deal.HinhAnhs.FirstOrDefault().ten,
                                 thoigianbatdau = deal.thoigianbatdau,
                                 thoigianketthuc = deal.thoigianketthuc,
                                 giaconlai = deal.giaconlai,
                                 gia = deal.gia
                     
                             };

                int count = source.Count(a => true);
                int p = 1;
                int NumberLinePerPage = 2;
                int NumberPage = (int)Math.Round(((float)count / NumberLinePerPage + 0.5));


                try
                {
                    p = int.Parse(Request.QueryString["p"]);


                }
                catch
                {
                    p = 1;
                }

                try
                {
                    var FinalSource = source.Skip((p - 1) * NumberLinePerPage).Take(NumberLinePerPage);
                    Repeater1.DataSource = FinalSource;
                    Repeater1.DataBind();
                }
                catch { }
                String html = "";
                for (int i = 1; i <= NumberPage; i++)
                {
                    if (i == p)
                    {
                        html += "<span>" + i.ToString() + "</span>";
                    }
                    else
                    {
                        html += "<a href='DealControl.aspx?p=" + i.ToString() + "'>" + i.ToString() + "</a>";
                    }
                }
                UlPage.InnerHtml = html;


            }
            catch { }
        }



        private int GetMaxDealID()
        {
            DataClassesDataContext db = new DataClassesDataContext();
            int kq = 0;
            try
            {
                kq = db.Deals.Max(e => e.id);
            }
            catch { }
            return kq;
        }
        private void DropDownListBind()
        {
            DataClassesDataContext db = new DataClassesDataContext();
            try
            {

                DropdownListCongTy.DataSource = db.CongTies;
                DropdownListCongTy.DataTextField = "ten";
                DropdownListCongTy.DataValueField = "id";
                DropdownListCongTy.DataBind();
            }
            catch (Exception)
            {

            }
        }
        private void Message(bool success, String message)
        {
            if (success)
            {
                LabelOk.Text = message;

            }
            else
            {
                label1.Text = message;
            }
            PanelOk.Visible = success;
            PanelError.Visible = !success;
        }
        protected void Submit_Click(object sender, EventArgs e)
        {
            DataClassesDataContext db = new DataClassesDataContext();
            Deal d = new Deal();
            var ha = from h in db.HinhAnhs
                     where h.madeal == null
                     select h;

            if (ha.ToList().Count == 0)
            {
                Message(false, "Bạn chưa upload hình");
                return;
            }
            if (EditorDiemNoiBat.Content == "")
            {
                Message(false,"Bạn phải ghi đầy đủ điểm nổi bật");
                return;
            }
            if (EditorDieuKienSuDung.Content == "")
            {
                Message(false,"Bạn phải điền thông tin điều kiện sữ dụng");
                return;
            }
            if (EditorChiTiet.Content == "")
            {
                Message(false,"Bạn phải điền thông tin chi tiết");
                return;
            }
            try
            {
                String[] ngaybd = TextBoxNgayBatDau.Text.Split('/');
                String[] ngaykt = TextBoxNgayKetThuc.Text.Split('/');
                DateTime t1 = new DateTime(int.Parse(ngaybd[2]), int.Parse(ngaybd[0]), int.Parse(ngaybd[1]));
                DateTime t2 = new DateTime(int.Parse(ngaykt[2]), int.Parse(ngaykt[0]), int.Parse(ngaykt[1]));

                if (DateTime.Compare(t1, t2) >= 0)
                {
                    Message(false,"Ngày bắt đầu phải trước ngày kết thúc");
                    return;
                }
                d.thoigianbatdau = t1;
                d.thoigianketthuc = t2;
            }
            catch
            {
                Message(false,"Ngày không hợp lệ");
                return;
            }
            try
            {
                d.gia = int.Parse(TextBoxGia.Text);
                d.giaconlai = int.Parse(TextBoxGiaConLai.Text);
                d.soluongmuatoithieu = int.Parse(TextBoxSoLuongMuaToiThieu.Text);
                d.soluongmuatoida = int.Parse(TextBoxSoLuongMuaToiDa.Text);
            }
            catch
            {
               Message(false,"Xem lại giá trị số ! Phải điền số");
                return;
            }
            d.id = GetMaxDealID() + 1;
            d.chitiet = EditorChiTiet.Content;
            d.congty = int.Parse(DropdownListCongTy.SelectedValue);
            d.diemnoibat = EditorDiemNoiBat.Content;
            d.dieukiensudung = EditorDieuKienSuDung.Content;
            d.ten = TextBoxTenDeal.Text;
            db.Deals.InsertOnSubmit(d);
            db.SubmitChanges();

            foreach (HinhAnh h in ha)
            {
                h.madeal = d.id;
            }
            db.SubmitChanges();

            Message(true, "Thêm thành công");
            RepeaterBind();
        }

        protected void TimKiem_Click(object sender, EventArgs e)
        {
            RepeaterBind();
        }

      
       

        
    }
}